package com.hemerasolutions.v2trainer.component.interfaces.list;

import java.util.List;
import java.util.Map;

import javax.faces.event.ActionEvent;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.StatisticDetailsCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.StepCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.table.StatisticTableCompInterface;
import com.hemerasolutions.v2trainer.dao.interfaces.TrainingTypeDaoInterface;
import com.hemerasolutions.v2trainer.model.exercise.Exercise;
import com.hemerasolutions.v2trainer.model.exerciseGroup.ExerciseGroup;
import com.hemerasolutions.v2trainer.model.library.Library;
import com.hemerasolutions.v2trainer.model.step.Step;
import com.hemerasolutions.v2trainer.model.training.TrainingStep;
import com.hemerasolutions.v2trainer.model.training.statistic.TrainingStatistic;

public interface StepListCompInterface extends BaseComponentInterface {

	public abstract void setTtDao(TrainingTypeDaoInterface ttDao);

	public abstract TrainingTypeDaoInterface getTtDao();

	public abstract void addExerciseGroup(ExerciseGroup exerciseGroup);

	public abstract void addStepGroup(String name, List<Step> steps);

	public abstract boolean addExerciseStep(Exercise exercise);

	public abstract void clearSteps();

	public abstract void setStepHandlers(Map<Long,StepCompInterface> stepHandlers);

	public abstract Map<Long,StepCompInterface> getStepHandlers();

	public abstract void setLibrarys(List<Library> librarys);

	public abstract List<Library> getLibrarys();

	public abstract void refresh();

	public abstract void setStepLevel(TrainingStep stepLevel);

	public abstract TrainingStep getStepLevel();

	public abstract void setStepLevels(List<TrainingStep> stepLevels);

	public abstract List<TrainingStep> getStepLevels();

	public abstract void setLevel(int level);

	public abstract int getLevel();

	public abstract void setStep(Step step);

	public abstract Step getStep();

	public abstract void setTranslateList(String value);

	public abstract String getTranslateList();

	public abstract void trainingStepChanged();

	public abstract void addSteps(List<Step> steps);

	public abstract void addStep(ActionEvent ev);

	public abstract void deleteChild(ActionEvent ev);

	public abstract void copyLevel(ActionEvent ev);

	IntensityZoneListCompInterface getIzHandler();

	ModalityIZListCompInterface getImzHandler();

	void setImzHandler(ModalityIZListCompInterface imzHandler);

	void setIzHandler(IntensityZoneListCompInterface izHandler);

	StatisticTableCompInterface getStatisticTable();

	void setStatisticTable(StatisticTableCompInterface statisticTable);

	public abstract void stepChanged(Step step);

	TrainingStatistic getSelStatistic();

	void setSelStatistic(TrainingStatistic selStatistic);

	StatisticDetailsCompInterface getStatisticHandler();

	void setStatisticHandler(StatisticDetailsCompInterface statisticHandler);




}
